namespace Bean.Entity;

/// <summary>
/// 通用返回格式
/// </summary>
/// <typeparam name="T"></typeparam>
public class ApiResponse<T>
{
    ///状态码，表示请求是否成功
    public int Code { get; set; }
    
    /// 返回的消息，通常用于描述状态或错误信息
    public string Message { get; set; }
    
    /// 泛型数据字段，可以返回任何类型的数据
    public T Data { get; set; }
    
    
    /// 可选的构造函数，方便快速创建标准响应
    public ApiResponse(int statusCode, string message, T data)
    {
        Code = statusCode;
        Message = message;
        Data = data;
    }
    
    /// 通用成功的返回方法
    public static ApiResponse<T> Success(T data, string message = "请求成功")
    {
        return new ApiResponse<T>(200, message, data);
    }
    
    /// 通用失败的返回方法
    public static ApiResponse<T> Error(string message, int statusCode = 400)
    {
        return new ApiResponse<T>(statusCode, message, default(T));
    }
}